export default {
  namespaced: true,
  state: {
    //是否显示提示框
    isShowToast: false,
    //提示信息
    toastMsg: '',
    //提示类型（控制图标） success warning  danger
    toastType: '',
  },
  mutations: {
    //修改是否显示提示框
    changeIsShowToast(state, payload) {
      //***控制台输出，是否成功调用，切正确传入参数payload输出下。
      // console.log('原来的显示', payload);
      state.isShowToast = payload.isShow;
      //如果传入的是显示提示框，则给toastMsg和toastType赋值
      if (payload.isShow) {
        state.toastMsg = payload.msg;
        state.toastType = payload.type;
      }
    },
  },
  actions: {
    //包含异步处理
    asyncIsShowToast(context, payload) {
      //调试方法：检查是否执行到了这一行代码 ，payload
      // console.log('异步处理', payload);
      context.commit('changeIsShowToast', {
        isShow: true,
        msg: payload.msg,
        type: payload.type,
      });
      //定时器方式自动关闭
      setTimeout(() => {  
        context.commit('changeIsShowToast', { isShow: false });
      }, 1500);
    },
  },
};

/* 
    提示信息：
        灵活： （提示内容，提示的图标） 

     实现步骤：
     1. vuex中存储 提示信息和提示类型
     2. vuex中提供修改 提示信息和提示类型的代码
     3. Toast中显示vuex中的提示消息和类型
     4. Login.vue调用时，传入提示信息和提示类型。
*/
